package com.atguigu.gmall.web.all.controller;


import com.atguigu.gmall.common.util.AuthContextHolder;
import com.atguigu.gmall.model.order.OrderDetail;
import com.atguigu.gmall.web.all.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * 订单页面跳转控制器
 */
@Controller
public class OrderController {

    @Autowired
    OrderService orderService;

    /*
    * 跳转到订单列表页
    * */
    @GetMapping("/myOrder.html")
    public String orderListPage(){
        return "order/myOrder";
    }

    /**
     * 来到订单确认页, 为当前页生成一个新的 tradeNo；
     * @return
     */
    @GetMapping("/trade.html")
    public String tradeHtml(Model model, HttpServletRequest request){
        System.out.println("trade主线程："+ Thread.currentThread().getId());
        /**
         * detailArrayList： 商品清单（拿到购物车中已经被选中的这些商品）[给service-cart\给service-product]
         *      每个商品： imgUrl、skuName、orderPrice、skuNum
         * totalNum： 商品数量 ：自己计算
         * totalAmount： 商品金额： 自己计算
         * userAddressList: 用户收货地址列表  给[service-user]  consignee \ phoneNum \ userAddress
         * tradeNo： 交易号【防止重复提交的】  给[service-order]发请求
         */

        String userId = AuthContextHolder.getUserId(request);

        //除了准备订单确认页需要的数据外，每次请求都会生成防重令牌。
        Map<String,Object> map = orderService.getOrderConfirmInfo(userId);

//        model.addAttribute("detailArrayList",null);
//        model.addAttribute("totalNum",null);
//        model.addAttribute("totalAmount",null);
//        model.addAttribute("userAddressList",null);
//        model.addAttribute("tradeNo",null);
        model.addAllAttributes(map);

        return "order/trade";
    }
}
